Iterator Functions (begin(), end(), rbegin(), rend())

Computer Programming - সি++ স্ট্যান্ডার্ড লাইব্রেরি (C++ Standard Library) Iterators (ইটেরেটর) |
111
111

C++-এ ইটরেটর ফাংশন (Iterator Functions) হল এমন ফাংশনগুলি যা কনটেইনারের মধ্যে উপাদানগুলোর ওপর ভ্রমণ করতে সাহায্য করে। ইটরেটরগুলি std::vector, std::list, std::set, std::map সহ বিভিন্ন কনটেইনারের উপাদান অ্যাক্সেস করতে ব্যবহৃত হয়। begin(), end(), rbegin(), এবং rend() হলো ইটরেটরের জন্য কিছু গুরুত্বপূর্ণ ফাংশন যা C++-এ কনটেইনারের উপাদানগুলির মধ্যে ট্রাভার্স করতে ব্যবহৃত হয়।

১. begin() (প্রথম উপাদানে পয়েন্টার)

begin() ফাংশন কনটেইনারের প্রথম উপাদানটি নির্দেশ করে। এটি একটি ইটরেটর রিটার্ন করে যা কনটেইনারের প্রথম উপাদানে পয়েন্ট করে।

ব্যবহার:

  • begin() ফাংশন কনটেইনারের প্রথম উপাদানের আগে থেকে ট্রাভার্স শুরু করতে ব্যবহৃত হয়।

উদাহরণ:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> numbers = {10, 20, 30, 40, 50};

    // begin() ব্যবহার করে প্রথম উপাদান প্রিন্ট করা
    std::cout << "First element: " << *numbers.begin() << std::endl;

    return 0;
}

আউটপুট:

First element: 10

২. end() (শেষ উপাদানের পরবর্তী পয়েন্টার)

end() ফাংশন কনটেইনারের শেষ উপাদানের পরবর্তী স্থানে একটি ইটরেটর রিটার্ন করে। এটি একটি নির্দিষ্ট মানের পয়েন্টার নয়, বরং কনটেইনারের শেষের পরবর্তী স্থানের একটি অবস্থান নির্দেশ করে। এই ইটরেটরের মান কোনো উপাদানকে নির্দেশ করে না এবং এটি কনটেইনারের শেষের বাইরে।

ব্যবহার:

  • end() ফাংশন সাধারণত লুপে কনটেইনারের উপাদানগুলির মধ্য দিয়ে ট্রাভার্স করতে ব্যবহৃত হয়।

উদাহরণ:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> numbers = {10, 20, 30, 40, 50};

    // end() ব্যবহার করে সব উপাদান প্রিন্ট করা
    for (auto it = numbers.begin(); it != numbers.end(); ++it) {
        std::cout << *it << " ";
    }

    return 0;
}

আউটপুট:

10 20 30 40 50

৩. rbegin() (পিছনে থেকে প্রথম উপাদানে পয়েন্টার)

rbegin() ফাংশন কনটেইনারের শেষ উপাদান থেকে শুরু করে প্রথম উপাদানে পয়েন্ট করে। এটি একটি রিভার্স ইটরেটর রিটার্ন করে, যা কনটেইনারের উপাদানগুলো উল্টো দিক থেকে ট্রাভার্স করতে ব্যবহৃত হয়।

ব্যবহার:

  • rbegin() ফাংশন কনটেইনারের উপাদানগুলো উল্টো (পিছন থেকে সামনে) ক্রমে অ্যাক্সেস করতে ব্যবহৃত হয়।

উদাহরণ:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> numbers = {10, 20, 30, 40, 50};

    // rbegin() ব্যবহার করে উল্টো দিক থেকে উপাদান প্রিন্ট করা
    for (auto it = numbers.rbegin(); it != numbers.rend(); ++it) {
        std::cout << *it << " ";
    }

    return 0;
}

আউটপুট:

50 40 30 20 10

৪. rend() (রিভার্স শেষে পয়েন্টার)

rend() ফাংশন কনটেইনারের রিভার্স শেষের পরবর্তী স্থানে একটি ইটরেটর রিটার্ন করে। এটি rbegin() এর মতো কাজ করে, তবে এটি শেষ উপাদান থেকে এক স্থান পরবর্তী অবস্থান নির্দেশ করে।

ব্যবহার:

  • rend() ফাংশন রিভার্স ট্রাভার্সে শেষ অবস্থানকে চিহ্নিত করে, যেখানে ট্রাভার্স শেষ হয়।

উদাহরণ:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> numbers = {10, 20, 30, 40, 50};

    // rbegin() ও rend() ব্যবহার করে উল্টো দিক থেকে উপাদান প্রিন্ট করা
    for (auto it = numbers.rbegin(); it != numbers.rend(); ++it) {
        std::cout << *it << " ";
    }

    return 0;
}

আউটপুট:

50 40 30 20 10

ইটরেটর ফাংশন গুলির সংক্ষিপ্ত বিবরণ:

ফাংশনবর্ণনা
begin()কনটেইনারের প্রথম উপাদানে একটি ইটরেটর রিটার্ন করে।
end()কনটেইনারের শেষ উপাদানের পরবর্তী স্থানে একটি ইটরেটর রিটার্ন করে।
rbegin()কনটেইনারের শেষ উপাদানে শুরু হওয়া রিভার্স ইটরেটর রিটার্ন করে।
rend()কনটেইনারের প্রথম উপাদানের পরবর্তী স্থানে রিভার্স ইটরেটর রিটার্ন করে।

উপসংহার

  • begin() এবং end() ফাংশনগুলি কনটেইনারের উপাদানগুলোর মধ্যে ফরওয়ার্ড ট্রাভার্স (সামনে থেকে পিছনে) করতে ব্যবহৃত হয়।
  • rbegin() এবং rend() ফাংশনগুলি কনটেইনারের উপাদানগুলোর মধ্যে রিভার্স ট্রাভার্স (পিছনে থেকে সামনে) করতে ব্যবহৃত হয়।
  • এই ফাংশনগুলি ইটরেটরের সাথে ব্যবহার করা হয়, যা কনটেইনারের উপাদানগুলোতে কার্যকরীভাবে চলাচল করতে সহায়ক।
Content added By
Promotion